package com.exam.api.modules.metadata.service.impl;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.exam.api.common.exception.GlobalException;
import com.exam.api.common.web.ResultCode;
import com.exam.api.modules.metadata.domain.TblMetadata;
import com.exam.api.modules.metadata.mapper.TblMetadataMapper;
import com.exam.api.modules.metadata.service.TblMetadataService;
import org.springframework.stereotype.Service;

import java.util.Optional;

/**
* @author iaa
* @description 针对表【tbl_metadata(元数据表)】的数据库操作Service实现
* @createDate 2024-10-14 11:54:32
*/
@Service
public class TblMetadataServiceImpl extends ServiceImpl<TblMetadataMapper, TblMetadata> implements TblMetadataService {

    @Override
    public void updateMetadata(TblMetadata dto) {
        Optional<TblMetadata> metadataOpt = lambdaQuery()
                .eq(TblMetadata::getMetadataCode, dto.getMetadataCode())
                .oneOpt();
        if(metadataOpt.isPresent()){
            //更新
            TblMetadata metadata = metadataOpt.get();
            metadata.setMetadata(dto.getMetadata());
            metadata.setCheckLogin(dto.getCheckLogin());
            metadata.setComment(dto.getComment());
            metadata.setUpdateUserId(null);
            metadata.setUpdateTime(null);
            updateById( metadata);
        }else {
            //插入
            TblMetadata metadata = new TblMetadata();
            metadata.setMetadataCode(dto.getMetadataCode());
            metadata.setMetadata(dto.getMetadata());
            metadata.setCheckLogin(dto.getCheckLogin());
            metadata.setComment(dto.getComment());
            save(metadata);
        }
    }

    @Override
    public TblMetadata getMetadata(TblMetadata dto) {
        return lambdaQuery().eq(TblMetadata::getMetadataCode, dto.getMetadataCode()).oneOpt()
                .orElseThrow(() -> new GlobalException(ResultCode.DATA_NO_EXIST));
    }
}




